App = {
	ztreeCheck : {
		view : {
			selectedMulti : false
		},
		check : {
			enable : true
		}
	}
}
// 提供字符串的 startsWith 函数
if (typeof String.prototype.startsWith != 'function') {
	String.prototype.startsWith = function(prefix) {
		return this.slice(0, prefix.length) === prefix;
	};
}
$(function() {
	/**
	 * 网络请求缓存
	 */
	Uitl = {
		'loadCache' : function(url, fun) {
			if (sessionStorage['cache-' + url]) {
				fun(JSON.parse(sessionStorage['cache-' + url]));
			} else {
				$.get(url, function(result) {
					sessionStorage['cache-' + url] = JSON.stringify(result);

					fun(result);
				});
			}
		},
		'loadMenus' : function(menu) {
			var result = '';

			if (menu.children) {
				result += '<li class="treeview" data-code="' + menu.code + '" data-identity="' + (menu.identity || 'none') + '">';
			} else {
				result += '<li data-code="' + menu.code + '" data-identity="' + (menu.identity || 'none') + '">';
			}

			result += '<a href="' + (menu.linkurl || '#') + '">';
			result += '<i class="' + (menu.icon || 'hide') + '"></i>';
			result += '<span>' + (menu.name || '') + '</span>';

			if (menu.children) {
				result += '<span class="pull-right-container"><i class="fa fa-angle-left pull-right"></i></span>';
				result += '</a>';
				result += '<ul class="treeview-menu" data-menu-code="' + menu.code + '">';

				$.each(menu.children, function() {
					result += Uitl.loadMenus(this);
				});
				result += '</ul>';
			} else {
				result += '</a>';
			}

			result += '</li>';

			return result;
		}
	}

	$(document).on('click', '[clear-cache]', function() {
		sessionStorage.removeItem('cache-/admin/adminlte/user.json');
		sessionStorage.removeItem('cache-/admin/adminlte/menu.json');
	}).on('reload-menu', function() {// 重载菜单
		sessionStorage.removeItem('cache-/admin/adminlte/menu.json');

		$(this).triggerHandler('load-menu');
	}).on('reload-userinfo', function() {// 重载用户资料
		sessionStorage.removeItem('cache-/admin/adminlte/user.json');

		$(this).triggerHandler('load-userinfo');
	}).on('load-menu', function() { // 加载菜单
		Uitl.loadCache('/admin/adminlte/menu.json', function(result) {
			if (!result.success)
				return;
			var $menus = $('.sidebar-menu').empty();
			$.each(result.data, function() {
				$menus.append(Uitl.loadMenus(this));
			});
			$('.sidebar-menu li[data-identity="' + $menus.attr('data-identity') + '"]').addClass('active').parentsUntil('.sidebar-menu').each(function() {
				$(this).addClass($(this).hasClass('treeview-menu') ? 'menu-open' : 'active');
			});
		});
	}).on('load-userinfo', function() { // 加载个人资料
		Uitl.loadCache('/admin/adminlte/user.json', function(result) {
			if (result.success) {
				$('[data-user-name]').text(result.data.name);
				$('[data-user-icon]').attr('src', result.data.icon);
				$('[data-user-online]').html('<i class="fa fa-circle text-success"></i>在线');
			} else {
				$('[data-user-online]').html('<i class="fa fa-circle text-danger"></i>离线');
			}
		});
	}).on('load-message', function() { // 加载通知消息
		$.get('/admin/adminlte/notifications.json', function(result) {
			if (!result.success)
				return;
			var $notifications_menu = $('#notifications_menu');
			if (result.total) {
				$notifications_menu.find('.dropdown-toggle span').text(result.total);
				$notifications_menu.find('.dropdown-menu .header').text('你有' + result.total + '条未读消息');
				$unread = $notifications_menu.find('.dropdown-menu .menu');
				$unread.empty();
				$.each(result.data, function() {
					$unread.append('<li><a href="' + this.link + '"> <i class="fa fa-users text-aqua"></i>' + this.title + '</a></li>');
				})
			}
		});
	});
	// 以下触发加载事件
	$(document).triggerHandler('load-menu');
	$(document).triggerHandler('load-userinfo');
	$(document).triggerHandler('load-message');
})